ホームに戻る
出典 :
関連 :
目次 :
Visual Studioテンプレートの作成
プロジェクトテンプレートや項目テンプレートを作成・流用することで、プロジェクトや個別のソースファイルを効率的に作成することができる。
なお、WPFの
テンプレート(カスタムコントロール)とは異なる。
手順はいずれもVisual Studio 2026における例である。
プロジェクトテンプレート
プロジェクトテンプレートはプロジェクトに属するファイル群の雛型である。
手順1. テンプレートの作成
- 出力するプロジェクトを整理する。
(テンプレートに含める内容のみを残す。)
- 「プロジェクト」>「テンプレートのエクスポート」を選択する。

- ラジオボタン「プロジェクト テンプレート」にチェックを入れ、
テンプレートとしてエクスポートするプロジェクトを選択し、「次へ」をクリックする。

- 「テンプレート名」、「テンプレートの説明」を入力し、「完了」をクリックすると、「出力場所」にテンプレート(ZIP)が出力される。
ここで、「テンプレートを自動的にVisual Studioにインポート」にチェックを入れると、システムのテンプレートに組み込まれ、すぐに使用できるようになる。
(その環境でのみ)

手順2. テンプレートのインポート
他の環境で作成されたテンプレートを使用する場合は以下の手順を行う。
- ユーザープロジェクトテンプレートの場所を確認する。
メニューから「ツール」>「オプション」を選択してオプションを開き、
「すべての設定」>「プロジェクトとソリューション」>「場所」を選択する。
このとき、テンプレートの場所は任意に変更してよい。
(プロジェクトの場所(デフォルト)も参照。)
- 1. の場所にプロジェクトテンプレート(ZIP)を配置する。
サブディレクトリ(1. でプロジェクトテンプレートの場所を変更するとサブディレクトリが自動生成される)への配置も可能だが、
有効なサブディレクトリ名は限られていることに注意。
(例えばVS2022では「Visual C#」は有効だが「C#」は無効。)
配置後にテンプレートを削除すると、そのテンプレートは使用できなくなる。
手順3. テンプレートの呼び出し
手順1で作成したテンプレートは組み込みのテンプレートと同様、プロジェクトの新規作成時に雛形として使用できる。
ただし、組み込みテンプレートと異なり、プラットフォームおよびプロジェクト種類のタグが付与されていない。
(「言語」はテンプレート作成時に元となったプロジェクトのものが適用される。)
「すべてのプラットフォーム」、「すべてのプロジェクトの種類」を選択して絞り込みを解除した上で
テンプレートを特定できる語句を検索欄に入力し、テンプレートを選択する。
以降は組み込みテンプレートと同様。
手順4. テンプレートの編集
※この節は書きかけです。
ZIPを解凍し、VSTEMPLATE (実体はXML)ファイルを編集することでプロジェクト情報を変更することができる。
VSTEMPLATE の各要素は
リファレンスを参照。
VSTEMPLATE の例
<
VSTemplate Version=
"3.0.0" xmlns=
"http://schemas.microsoft.com/developer/vstemplate/2005" Type=
"Project">
<
TemplateData>
<
Name>WPF_App_Standard<
/Name>
<
Description>WPFアプリケーション 標準テンプレート<
/Description>
<
ProjectType>CSharp<
/ProjectType>
<
ProjectSubType>
<
/ProjectSubType>
<
SortOrder>1000<
/SortOrder>
<
CreateNewFolder>true<
/CreateNewFolder>
<
DefaultName>WPF_App_Standard<
/DefaultName>
<
ProvideDefaultName>true<
/ProvideDefaultName>
<
LocationField>Enabled<
/LocationField>
<
EnableLocationBrowseButton>true<
/EnableLocationBrowseButton>
<
CreateInPlace>true<
/CreateInPlace>
<
Icon>__TemplateIcon.ico<
/Icon>
<
/TemplateData>
<
TemplateContent>
<
Project TargetFileName=
"WPF_App_Standard.csproj" File=
"WPF_App_Standard.csproj" ReplaceParameters=
"true">
<
Folder Name=
"_Asset" TargetFolderName=
"_Asset" />
<
Folder Name=
"_Converter" TargetFolderName=
"_Converter" />
<
Folder Name=
"_CustomControl" TargetFolderName=
"_CustomControl" />
<
Folder Name=
"_Style" TargetFolderName=
"_Style" />
<
Folder Name=
"_UserControl" TargetFolderName=
"_UserControl" />
<
Folder Name=
"_Window" TargetFolderName=
"_Window">
<
Folder Name=
"MainWindow" TargetFolderName=
"MainWindow">
<
ProjectItem ReplaceParameters=
"true" TargetFileName=
"MainWindow.xaml">MainWindow.xaml<
/ProjectItem>
<
ProjectItem ReplaceParameters=
"true" TargetFileName=
"MainWindow.xaml.cs">MainWindow.xaml.cs<
/ProjectItem>
<
/Folder>
<
/Folder>
<
ProjectItem ReplaceParameters=
"true" TargetFileName=
"App.xaml">App.xaml<
/ProjectItem>
<
ProjectItem ReplaceParameters=
"true" TargetFileName=
"App.xaml.cs">App.xaml.cs<
/ProjectItem>
<
ProjectItem ReplaceParameters=
"true" TargetFileName=
"AssemblyInfo.cs">AssemblyInfo.cs<
/ProjectItem>
<
/Project>
<
/TemplateContent>
<
/VSTemplate>
項目テンプレート
項目テンプレートは、単一のモジュール(クラスライブラリやウィンドウなどのコンポーネント)に対応するファイルの雛型である。
有効な場面

上図のように、Window に外部ファイルで定義されるリソースを適用する場合を考える。
リソースファイルの指定やスタイル(キー)の指定がボイラープレートとなっているため、
Window を項目テンプレートとすることで、ボイラープレートを都度記述する必要がなくなる。
このとき、テンプレート化する MainWindow が参照している(依存関係にある) _Style/General.xaml も項目テンプレートに含まれるため、
依存関係にあるファイルを都度プロジェクトに追加する必要もない。
テンプレートの作成
- 「プロジェクト」>「テンプレートのエクスポート」を選択する(プロジェクトテンプレートと共通)。
- ラジオボタン「項目テンプレート」にチェックを入れ、
エクスポートする項目が含まれるプロジェクトを選択し、「次へ」をクリックする。
- エクスポートする項目にチェックを入れ、「次へ」をクリックする。
(ここでは MainWindow.xaml を選択。)

- テンプレートに参照を含める場合、必要なものにチェックを入れる。「次へ」をクリックする。
- 「テンプレート名」、「テンプレートの説明」を入力し、「完了」をクリックすると、「出力場所」にテンプレート(ZIP)が出力される(プロジェクトテンプレートと共通)。
テンプレートの適用、編集はプロジェクトテンプレートと共通である。